Brought to you by EarthWeb
IT Library Logo

Click Here!
Click Here!


Search the site:
 
EXPERT SEARCH -----
Programming Languages
Databases
Security
Web Services
Network Services
Middleware
Components
Operating Systems
User Interfaces
Groupware & Collaboration
Content Management
Productivity Applications
Hardware
Fun & Games

EarthWeb Direct EarthWeb Direct Fatbrain Auctions Support Source Answers

EarthWeb sites
Crossnodes
Datamation
Developer.com
DICE
EarthWeb.com
EarthWeb Direct
ERP Hub
Gamelan
GoCertify.com
HTMLGoodies
Intranet Journal
IT Knowledge
IT Library
JavaGoodies
JARS
JavaScripts.com
open source IT
RoadCoders
Y2K Info

Previous Table of Contents Next


Transport Protocols

TCP/IP has two principal transport layer protocols: TCP and UDP. TCP is a reliable two-way byte stream protocol and is used where total reliability is required. TCP is a very complex protocol and the details of its implementation are beyond the scope of this chapter. TCP guarantees that all bytes are received in order, doing this by building sequenced, check-summed messages that are then encapsulated within an IP packet. In essence TCP builds a virtual circuit on top of the unreliable packet-oriented service of IP. TCP also incorporates a flow control algorithm that makes efficient use of available network band-width. This allows several TCP messages to be in flight before an acknowledgement is received for the first message. To do all this, TCP must maintain a considerable amount of state information. This state information is maintained and updated in both the TCP header as well as at each end of the connection.

UDP, unlike TCP, is an unreliable packet-oriented protocol. UDP provides a process interface to the packet delivery services of IP. The only type of reliability checking UDP does is a simple check sum of each message. Also unlike TCP, UDP has no notion of a connection. This allows a UDP message to be broadcast to all hosts on a single entry network by using the IP broadcast address. This broadcast support makes UDP very useful in applications that require a single message to be sent to multiple hosts where an acknowledgment is not required. Routing update protocols often use UDP to transmit routing updates.

Both TCP and UDP support multiplexing, that is, messages can be directed to different processes on the same host. This is supported by the port abstraction. A port is simply an integer that is associated with a process on a machine. Every TCP and UDP message header contains a source and destination port.

In the case of UDP, when a message is received the process data contained in the message is sent to the process waiting for data on the destination port. Therefore more than one process can be sent data using UDP. All that is required is that each process wait on a different port number.

TCP elaborates on the port abstraction and allows multiple connections to the same destination port. Services such as Telnet use this facility to let multiple clients connect to the same service. For example, a Telnet server always uses a port number of 23. All Telnet clients use this well-known port as a destination field to connect to a Telnet server. The destination port in the TCP message header is concatenated with the source port and the source and destination IP addresses and protocol number (found in the IP header) to form a unique 5-tuple. This 5-tuple forms a unique connection address. When a TCP message is received this connection address is evaluated and the data is sent to the correct process.

PROCESS AND APPLICATION PROTOCOLS

The TCP/IP protocol suite has a number of process and application layer protocols. All of these are built on top of either TCP or UDP transport. This chapter briefly describes some of the more common applications.

Telnet

Telnet is the remote terminal service of TCP/IP, allowing a user on one host to log in to another host. Telnet defines a network virtual terminal (NVT) that maps the differences between various local terminal protocols to a common canonical convention. Telnet is one of the oldest of the TCP/IP protocols and was adapted from a protocol that had the same name and that was used on the original ARPANET.

FTP

File transfer protocol (FTP) lets a user access a remote host and transfer files to and from that host. FTP also supports what is called anonymous TFP, which allows any remote user to access a carefully restricted subnet of files on a remote host. Anonymous FTP is the mechanism used by Internet archive sites to allow remote access to publicly available software.

SMTP

Simple mail transfer protocol (SMTP) permits electronic mail messages to be sent from one host to another in a standard way. SMTP is not usually an end-user protocol, but is embedded in a mail transfer agent (MTA) that places received mail in a user’s mailbox where it is read by a mail user agent (UA).

DNS

Domain name system (DNS) is a distributed naming service for the Internet community. DNS is primarily used to map host names to their corresponding IP interface address. DNS defines a hierarchical name space that allows distribution of naming authority. A name like akasha.tic.com is an example of a DNS name.

Remote File Sharing

Several file sharing systems have been built using TCP/IP. These systems are generically called transparent file access (TFA). The most popular of these systems is Sun Microsystems Inc.’s (Mountain View CA) Network File System (NFS). NFS allows sharing of remote file systems as if they were local. Another TFA system is the Andrew File System (AFS).

HTTP

Hypertext transfer protocol (HTTP) permits a user with a WorldWide Web browser to access World Wide Web servers for the purpose of retrieving text, graphic images, and other objects. HTTP emerged in the mid-1990s, and quickly became the most popular protocol on the Internet.

SUMMARY

The TCP/IP suite, although it is more than 15 years old, continues to grow and develop. The protocol suite was originally a research experiment and at one time it was in use only in computer laboratories and on research networks. Its use today goes far beyond just being a research tool; so much so, in fact, that now it is the engine that drives the world’s largest network of networks, the Internet.


Previous Table of Contents Next

footer nav
Use of this site is subject certain Terms & Conditions.
Copyright (c) 1996-1999 EarthWeb, Inc.. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Please read our privacy policy for details.